package com.neuedu.javase.flow;

/**
 * @author :金山老师
 * project: MyJavaSE
 * 描述 ： 练习  问题描述：水仙花数指一个特殊的三位数，它的各位数字的立方和与其自身相等。请输出所有的水仙花数。
 * @date : 2025/10/22 10:30 星期三
 */
public class Work {


    /***
     *    abc       a**3 + b**3 +c ** = abc
     *
     *    100   --- 999
     * @param args
     */
    public static void main(String[] args) {
        // for (int i = 100; i <=999 ; i++) {
        //
        //     int a = i /100; //百位
        //     int b = i /10 %10; //百位
        //     int c = i % 10; //百位
        //
        //     // 成立的条件    4 7 1    64  + 343 +1
        //     boolean condition = a * a * a +   b * b * b +  c * c * c == i ;
        //
        //     if(condition){
        //         System.out.println(" a * a * a"+( a * a * a));
        //         System.out.println(" b * b * b"+( b * b * b));
        //         System.out.println(" c * c * c"+( c * c * c));
        //         System.out.println("水仙花数 : "+i);
        //     }
        // }


        /****
         * 问题描述：母鸡3元/只，公鸡4元/只，小鸡0.5元/只，如果花100元钱买100只鸡，每一种鸡可以买0只，请问有哪些可能？
         * 百元百鸡问题属于数学上的组合问题，可以通过循环控制语句来列举所有的情况，并判断其是否符合要求。
         * 第一种编程思路：首先确定母鸡的购买数量为0，使公鸡的购买数量从0-100逐次变化，每当公鸡的数量变化一次，小鸡的数量就从0逐次变化到100，其数值组合如表所示。
         */


        for (int i = 0; i < 100 ; i++) {
            for (int j = 0; j < 100 ; j++) {
                for (int k = 0; k < 100 ; k++) {
                    // 100只
                    boolean  sumCondition =   i + j + k == 100 ;
                    
                    // 100元
                    boolean priceCondition = i * 3 + j * 4 + k * 0.5 == 100 ;
                    if(sumCondition && priceCondition){
                        System.out.println(i + " " + j + " " + k);
                    }
                }
            }
        }







        /**
         * 判断是否是质数
         *
         * 只能被1  和自身整除
         *
         * 1-----------n
         *
         *  假设  n 是质数  is = true
         *      循环 2-----n-1
         *        if(如果整除)
         *               is = false
         *
         *  if（is）{
         *      质数
         *  }else{
         *      非质数
         *  }
         *
         *
         */

        int n = 53;

        boolean is = true;

        for(int i = 2;   i < n ; i++){
            if(  n % i == 0 ){ //能整除不是质数
                is = false;
                break;
            }
        }

        if(is){
            System.out.println(n + "是质数");
        }else{
            System.out.println(n + "不是质数");
        }



    }








}
